<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2、ECMAScript基础(深入)之错误信息&try...catch&严格模式</title>
</head>
<body>
    <script type="text/javascript">
        /**
         * JS错误信息类型
         * 1、SyntaxError   语法错误
         * 2、ReferenceError    引用错误
         * 3、RangeError    范围错误
         * 4、TypeError     类型错误
         * 5、URIError  URI错误
         * 6、EvelError evel函数执行错误
         * **/

        // URI 统一资源标识符
        
        // URL 统一资源定位符
        // http:// www.baidu.com
        // ftp:// www.baidu.com
        
        // URN 统一资源名称
        // href="tel:13900000000"
        // href="tel:mailto:52324@qq.com"
        
        // URL和URN是URI的子集

        var myUrl = 'http://www.baidu.com?name=艾小叶';
        // console.log(myUrl);
        // var newUrl = encodeURI(myUrl);
        // console.log(newUrl);

        // eval可以执行代码块
        eval('var a = 1; console.log(a)');
        var e = eval('1');
        console.log(e);

        /**
         * JSON
         * 1、key用双引号
         * 2、不能有方法
         * **/

         // with()
         // 改变作用域
         var a = 1;
         var obj = {
             a: 2
         }
         function test(){
             var a = 3;
             with(test){
                 console.log(a); // 3
             }
             with(window){
                 console.log(a); // 1
             }
         }
         test();

         /**
          * 严格模式
          * 1、函数内部this报错
          * 2、callee caller arguments下的属性
          * 3、with()
          * 4、变量未声明
          * 5、函数参数不能重复
          * 6、对象属性名不能重复
          * 7、evel(),括号里不报错，外部调用内部会报错
          * **/
        //  'use strict';
        //  function test1(){
        //     console.log(this);
        //  }
        //  test1();

    </script>
</body>
</html>